Throughout this disclosure including in the claims, the expression performing an operation (e.g., filtering or transforming) “on” signals or data is used in a broad sense to denote performing the operation directly on the signals or data, or on processed versions of the signals or data (e.g., on versions of the signals that have undergone preliminary filtering prior to performance of the operation thereon).
Throughout this disclosure including in the claims, the expression “system” is used in a broad sense to denote a device, system, or subsystem. For example, a subsystem that predicts a next sample in a sample sequence may be referred to as a prediction system (or predictor), and a system including such a subsystem (e.g., a processor including a predictor that predicts a next sample in a sample sequence, and means for using the predicted samples to perform encoding or other filtering) may also be referred to as a prediction system or predictor.
Throughout this disclosure including in the claims, the verb “includes” is used in a broad sense to denote “is or includes,” and other forms of the verb “include” are used in the same broad sense. For example, the expression “a prediction filter which includes a feedback filter” (or the expression “a prediction filter including a feedback filter”) herein denotes either a prediction filter which is a feedback filter (i.e., does not include a feedforward filter), or prediction filter which includes a feedback filter (and at least one other filter, e.g., a feedforward filter).
A predictor is a signal processing element (e.g., a stage) used to derive an estimate of an input signal (e.g., a current sample of a stream of input samples) from some other signal (e.g., samples in the stream of input samples other than the current sample) and optionally also to filter the input signal using the estimate. Predictors are often implemented as filters, generally with time varying coefficients responsive to variations in signal statistics. Typically, the output of a predictor is indicative of some measure of the difference between the estimated and original signals.
A common predictor configuration found in digital signal processing (DSP) systems uses a sequence of samples of a target signal (a signal that is input to the predictor) to estimate or predict a next sample in sequence. The intent is usually to reduce the amplitude of the target signal by subtracting each predicted component from the corresponding sample of the target signal (thereby generating a sequence of residuals), and typically also to encode the resulting sequence of residuals. This is desirable in data rate compression codec systems, since required data rate usually decreases with diminishing signal level. The decoder recovers the original signal from the transmitted residuals (which may be encoded residuals) by performing any necessary preliminary decoding on the residuals, and then replicating the predictive filtering used by the encoder, and adding each predicted/estimated value to the corresponding one of the residuals.
Throughout this disclosure including in the claims, the expression “prediction filter” denotes either a filter in a predictor or a predictor implemented as a filter.
Any DSP filter, including those used in predictors, can at least mathematically be classified as a feedforward filter (also known as a finite impulse response or “FIR” filter) or a feedback filter (also known as an infinite impulse response or “IIR” filter), or a combination of IIR and FIR filters. Each type of filter (IIR and FIR) has characteristics that may make it more amenable to one or another application or signal condition.
The coefficients of a prediction filter must be updated as necessary in response to signal dynamics in order to provide accurate estimates. In practice, this imposes the need to be able to rapidly and simply calculate acceptable (or optimal) filter coefficients from the input signal. Appropriate algorithms exist for feedforward prediction filters, such as the Levinson-Durbin recursion method, but equivalent algorithms for feedback predictors do not exist. For this reason, most practical predictor embodiments employ just the feedforward architecture, even when signal conditions might favor the use of a feedback arrangement.
U.S. Pat. No. 6,664,913, issued Dec. 16, 2003 and assigned to the assignee of the present invention, describes an encoder and a decoder for decoding the encoder's output. Each of the encoder and the decoder includes a prediction filter. In a class of embodiments (e.g., the embodiment shown in FIG. 2 of the present disclosure), the prediction filter includes both an IIR filter and an FIR filter and is designed for use in encoding of data indicative of a waveform signal (e.g., an audio or video signal). In the embodiment shown in FIG. 2, the prediction filter includes FIR filter 57 (connected in the feedback configuration shown in FIG. 2) and FIR filter 59, whose outputs are combined by subtraction stage 56. The difference values output from stage 56 are quantized in quantization stage 60. The output of stage 60 is summed with the input samples (“S”) in summing stage 61. In operation, the predictor of FIG. 2 can assert (as the output of stage 61) residual values (identified in FIG. 2 as residuals “R”), each indicative of a sum of an input sample (“S”) and a quantized, predicted version of such sample (where such predicted version of the sample is determined by the difference between the outputs of filters 57 and 59).
Commercially available encoders and decoders that embody the “Dolby TrueHD” technology, developed by Dolby Laboratories Licensing Corporation, employ encoding and decoding methods of the type described in U.S. Pat. No. 6,664,913. An encoder that embodies the Dolby TrueHD technology is a lossless digital audio coder, meaning that the decoded output (produced at the output of a compatible decoder) must match the input to the encoder exactly, bit-for-bit. Essentially, the encoder and decoder share a common protocol for expressing certain classes of signals in a more compact form, such that the transmitted data rate is reduced but the decoder can recover the original signal.
U.S. Pat. No. 6,664,913 suggests that filters 57 and 59 (and similar prediction filters) can be configured to minimize the encoded data rate (the data rate of the output “R”) by trying each of a small set of possible filter coefficient choices (using each trial set to encode the input waveform), selecting the set that gives the smallest average output signal level or the smallest peak level in a block of output data (generated in response to a block of input data), and configuring the filters with the selected set of coefficients. The patent further suggests that the selected set of coefficients can be transmitted to the decoder, and loaded into a prediction filter in the decoder to configure the prediction filter.
U.S. Pat. No. 7,756,498, issued Jul. 13, 2010, discloses a mobile communication terminal which moves at variable speed while receiving a signal. The terminal includes a predictor that includes a first-order IIR filter, and a list of predetermined pairs of IIR filter coefficients is provided to the predictor. During operation of the terminal (while it moves at a specific speed), a pair of predetermined IIR filter coefficients is selected from the candidate filter list for configuring the filter (the selection is based on comparison of prediction results to results in which noise does not occur). The selection can be updated as the terminal's speed varies, but there is no suggestion to address the issue of signal continuity in the face of changing filter coefficients. The reference does not teach how the candidate filter list is generated, except to state that each pair in the list is determined as a result of experimentation (not described) to be suitable for configuring the filter when the terminal is moving at a different speed.
Although it has been proposed to adaptively update an IIR filter (e.g., filter 57 in the FIG. 2 system) of a prediction filter (e.g., to minimize the output signal energy from moment to moment), until the present invention it had not been known how to do so effectively, rapidly, and efficiently (e.g. to optimize the IIR filter, and/or a prediction filter including the IIR filter, rapidly and effectively for use under the relevant signal conditions, which may change over time). Nor had it been known how to do so in a manner addressing the issue of signal continuity under the condition of changing filter coefficients.
U.S. Pat. No. 6,664,913 also suggests determining a first group of possible prediction filter coefficient sets (a small number of sets from which a desired set can be selected) to include sets that determine widely differing filters matched to typically expected waveform spectra. Then a second coefficient selection step can be performed (after a best one of the sets in the first group is selected) to make a refined selection of a best filter coefficient set from a small second group of possible prediction filter coefficient sets, where all the sets in the second group determine filters similar to the filter selected during the first step. This process can be iterated, each time using a more similar group of possible prediction filters than was used in the previous iteration.
Although it has been proposed to generate one or more small groups of possible prediction filter coefficient sets (from which a desired coefficient set can be selected to configure a prediction filter), until the present invention it had not been known how to determine such a small group effectively and efficiently, so that each set in the group is useful to optimize (or adaptively update) an IIR filter (or a prediction filter including an IIR filter) for use under relevant signal conditions.